Динамическое программирование

Динамическое программирование

Динамическое программирование [dynamic program­ming] — раздел математического программирования, совокупность приемов, позволяющих находить оптимальные решения, основанные на вычислении последствий каждого решения и выработке оптимальной стратегии для последующих решений.

Процессы принятия решений, которые строятся по такому принципу, называются многошаговыми процессами. Математически оптимизационная задача строится в Д. п. с помощью таких соотношений, которые последовательно связаны между собой: например, полученный результат для одного года вводится в уравнение для следующего (или, наоборот, для предыдущего), и т.д. Таким образом, можно получить на вычислительной машине результаты решения задачи для любого избранного момента времени и «следовать» дальше. Д.п. применяется не обязательно для задач, связанных с течением времени. Многошаговым может быть и процесс решения вполне «статической» задачи. Таковы, например, некоторые задачи распределения ресурсов.

Общим для задач Д.п. является то, что переменные в модели рассматриваются не вместе, а последовательно, одна за другой. Иными словами, строится такая вычислительная схема, когда вместо одной задачи со многими переменными строится много задач с малым числом (обычно даже одной) переменных в каждой. Это значительно сокращает объем вычислений. Однако такое преимущество достигается лишь при двух условиях: когда критерий оптимальности аддитивен, т.е. общее оптимальное решение является суммой оптимальных решений каждого шага, и когда будущие результаты не зависят от предыстории того состояния системы, при котором принимается решение. Все это вытекает из принципа оптимальности Беллмана (см. Беллмана принцип оптимальности), лежащего в основе теории Д.п. Из него же вытекает основной прием — нахождение правил доминирования, на  основе которых на каждом шаге производится сравнение вариантов будущего развития и заблаговременное отсеивание заведомо бесперспективных вариантов. Когда эти правила обращаются в формулы, однозначно определяющие элементы последовательности один за другим, их называют разрешающими правилами.

Процесс решения при этом складывается из двух этапов. На первом он ведется «с конца»: для каждого из различных предположений о том, чем кончился предпоследний шаг, находится условное оптимальное управление на последнем шаге, т.е. управление, которое надо применить, если предпоследний шаг закончился определенным образом.

Такая процедура проводится до самого начала, а затем — второй раз — выполняется от начала к концу, в результате чего находятся уже не условные, а действительно оптимальные шаговые управления на всех шагах операции (см. пример в статье Дерево решений).

Несмотря на выигрыш в сокращении вычислений при использовании подобных методов по сравнению с простым перебором возможных вариантов, их объем остается очень большим. Поэтому размерность практических задач Д.п. всегда незначительна, что ограничивает его применение.

Можно выделить два наиболее общих класса задач, к которым в принципе мог бы быть применим этот метод, если бы не «проклятие размерности». (На самом деле на таких задачах, взятых в крайне упрощенном виде, пока удается лишь демонстрировать общие основы метода и анализировать экономико-математические модели). Первый — задачи планирования деятельности экономического объекта (предприятия, отрасли и т.п.) с учетом изменения потребности в производимой продукции во времени. Второй класс задач — оптимальное распределение ресурсов между различными направлениями во времени. Сюда можно отнести, в частности, такую интересную задачу: как распределить урожай зерна каждого года на питание и на семена, чтобы в сумме за ряд лет получить наибольшее количество хлеба?


Экономико-математический словарь: Словарь современной экономической науки. — М.: Дело. . 2003.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Динамическое программирование" в других словарях:

  • Динамическое программирование — в теории управления и теории вычислительных систем  способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с оптимальной подструктурой (англ.), выглядящим как набор перекрывающихся подзадач,… …   Википедия

  • динамическое программирование — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] динамическое программирование Раздел математического программирования, совокупность приемов, позволяющих находить оптимальные решения, основанные …   Справочник технического переводчика

  • ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ — раздел математики, посвященный теории и методам решения многошаговых задач оптимального управления. В Д. п. для управляемых процессов среди всевозможных управлений ищется то, к рое доставляет экстремальное (наименьшее или наибольшее) значение… …   Математическая энциклопедия

  • Динамическое программирование —         раздел математики, посвящённый теории и методам решения многошаговых задач оптимального управления (См. Оптимальное управление).          В Д. п. для управляемых процессов среди всех возможных управлений ищется то, которое доставляет… …   Большая советская энциклопедия

  • динамическое программирование — dinaminis programavimas statusas T sritis automatika atitikmenys: angl. dynamic programming vok. dynamische Programmierung, f rus. динамическое программирование, n pranc. programmation dynamique, f …   Automatikos terminų žodynas

  • ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ — раздел математич. программирования, изучающий многошаговые процессы поиска оптим. решения сложных задач. Применяется при составлении программ решения таких задач оптимизации, для к рых процесс поиска решения можно представить в виде нек рой… …   Большой энциклопедический политехнический словарь

  • динамическое программирование — планирование, построение и объединение динамических объектов, создаваемых с помощью обращений к процедуре распределения памяти …   Толковый переводоведческий словарь

  • Программирование математическое — Математическое программирование  математическая дисциплина, изучающая теорию и методы решения задач о нахождении экстремумов функций на множествах конечномерного векторного пространства, определяемых линейными и нелинейными ограничениями… …   Википедия

  • ПРОГРАММИРОВАНИЕ ДИНАМИЧЕСКОЕ — англ. programming, dynamic; нем. dinamische Programmierung. Математические модели, применяемые при принятии решений. Antinazi. Энциклопедия социологии, 2009 …   Энциклопедия социологии

  • Динамическое распределение памяти — Динамическое распределение памяти  способ выделения оперативной памяти компьютера для объектов в программе, при котором выделение памяти под объект осуществляется во время выполнения программы. При динамическом распределении памяти объекты… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»